Skip to content

Build explicit Ubuntu versions, add Ubuntu 22.04 support - #229

Open
alan-george-lk wants to merge 4 commits into
mainfrom
alan/feat-ubuntu-22.04
Open

Build explicit Ubuntu versions, add Ubuntu 22.04 support#229
alan-george-lk wants to merge 4 commits into
mainfrom
alan/feat-ubuntu-22.04

Conversation

@alan-george-lk

@alan-george-lk alan-george-lk commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator
  • Adds explicit ubuntu 22.04 and 24.04 versions for Linux builds
  • Keeps the other "linux" release for backwards compatibility

@alan-george-lk alan-george-lk changed the title WIP - Try Ubuntu 22.04 Build explicit Ubuntu versions, add Ubuntu 22.04 support Aug 9, 2026
@alan-george-lk
alan-george-lk marked this pull request as ready for review August 9, 2026 05:15

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 potential issues.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment on lines +435 to +439
# Deprecated compatibility aliases for existing Linux release consumers.
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz"
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Compatibility Linux download unpacks into a differently named folder than before

The compatibility Linux download is produced by copying the Ubuntu 24.04 archive file (cp at .github/workflows/make-release.yml:436-439) instead of repacking it, so anyone who unzips it now gets a folder with an unexpected name and their scripts stop finding the files.
Impact: Existing automation that downloads the Linux release and expects the old folder name breaks silently on the next release, defeating the purpose of the compatibility alias.

Archive top-level directory name mismatch in alias creation

Previously the loop created livekit-sdk-linux-x64-${VERSION}.tar.gz by running tar -czf ... livekit-sdk-linux-x64-${VERSION}, so the archive's single top-level entry was livekit-sdk-linux-x64-${VERSION}/.

Now the alias is a byte-for-byte copy of livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz, whose top-level entry is livekit-sdk-ubuntu-24.04-x64-${VERSION}/. Only the file name matches the old convention; the extracted directory does not. Same for the arm64 alias.

A fix is to create the alias by tarring the downloaded artifact directory under the legacy name, e.g. copying/renaming artifacts/livekit-sdk-ubuntu-24.04-x64-${VERSION} to livekit-sdk-linux-x64-${VERSION} before tarring, or using tar --transform to rewrite the leading path component.

Suggested change
# Deprecated compatibility aliases for existing Linux release consumers.
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz"
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz"
# Deprecated compatibility aliases for existing Linux release consumers.
# Repack (not copy) so the extracted top-level directory keeps the legacy name.
for pair in "ubuntu-24.04-x64:linux-x64" "ubuntu-24.04-arm64:linux-arm64"; do
src="livekit-sdk-${pair%%:*}-${VERSION}"
dst="livekit-sdk-${pair#*:}-${VERSION}"
if [[ -d "${src}" ]]; then
cp -r "${src}" "${dst}"
tar -czf "${{ github.workspace }}/release-assets/${dst}.tar.gz" "${dst}"
rm -rf "${dst}"
fi
done
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +435 to +439
# Deprecated compatibility aliases for existing Linux release consumers.
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz"
cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \
"${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Release publishing aborts if an Ubuntu 24.04 build archive is missing

The compatibility Linux downloads are created without first checking that the Ubuntu 24.04 archives exist (cp at .github/workflows/make-release.yml:436-439), so if either is absent the whole release step stops and no assets are published at all.
Impact: A single missing Linux build turns a partial release into no release, including the macOS and Windows assets that were built fine.

Unguarded cp under `set -e` semantics

Every other archive creation in this step is guarded by if [[ -d "${dirName}" ]], so a missing artifact is skipped. GitHub runs shell: bash steps with -eo pipefail, so a failing cp aborts the step before the Windows zip is created and before softprops/action-gh-release runs.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant